From 7ac337a9af03b58723cc7e13121e09850de24f7f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alberts=20Muktup=C4=81vels?= Date: Wed, 3 Feb 2016 15:48:52 +0200 Subject: [PATCH] gtksettings: fix critical warning Commit 5186aeb90f52c941a2642b04ebfb54e9d8f8ea11 introduced critical warning - g_value_copy: assertion 'g_value_type_compatible (...)' failed. https://bugzilla.gnome.org/show_bug.cgi?id=761381 --- gtk/gtksettings.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c index 339dfc2ede..7560fa9266 100644 --- a/gtk/gtksettings.c +++ b/gtk/gtksettings.c @@ -3435,16 +3435,20 @@ gtk_settings_reset_property (GtkSettings *settings, { GtkSettingsPrivate *priv = settings->priv; GParamSpec *pspec; + GtkRcPropertyParser parser; GValue *value; + GValue tmp_value = G_VALUE_INIT; pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (settings), name); g_return_if_fail (pspec != NULL); + parser = (GtkRcPropertyParser) g_param_spec_get_qdata (pspec, quark_property_parser); value = g_param_spec_get_qdata (pspec, g_quark_from_string (name)); - if (value != NULL) - g_value_copy (value, &priv->property_values[pspec->param_id - 1].value); + g_value_init (&tmp_value, G_PARAM_SPEC_VALUE_TYPE (pspec)); + if (value && _gtk_settings_parse_convert (parser, value, pspec, &tmp_value)) + g_value_copy (&tmp_value, &priv->property_values[pspec->param_id - 1].value); else g_param_value_set_default (pspec, &priv->property_values[pspec->param_id - 1].value); -- 2.30.2